package com.ec.api.client;

import com.ec.api.config.FeignConfig;
import com.ec.api.domain.dto.UserDTO;
import com.ec.common.domain.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * 用户服务客户端，调用 auth-service
 */
@FeignClient(value = "auth-service", configuration = FeignConfig.class)
public interface UserClient {

    /**
     * 根据用户ID获取用户信息
     * @param userId 用户ID
     * @return 用户信息
     */
    @GetMapping("/user/{id}")
    Result<UserDTO> getUserById(@PathVariable("id") Long userId);

    /**
     * 根据用户名模糊搜索用户
     * @param username 用户名（模糊搜索）
     * @return 用户列表
     */
    @GetMapping("/user/search")
    Result<List<UserDTO>> searchUsersByName(@RequestParam("username") String username);


    /**
     * 验证用户是否存在
     */
    @GetMapping("/user/{id}/exists")
    Result<Boolean> checkUserExists(@PathVariable("id") Long id);

    /**
     * 获取用户的角色ID
     */
    @GetMapping("/user/{id}/role")
    Result<Long> getUserRoleId(@PathVariable("id") Long id);
}